有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java从服务器中的jsp页面读取参数

在我的Spring项目中,我的服务类正在捕获我通过方法POST从表单发送的参数,目前:

@Transactional
@PreAuthorize("hasPermission(#user, 'cadastra_fornecedor')")
public boolean cadastra(HttpServletRequest request, HttpServletResponse response) {
    String identificador = request.getParameter("identificador");
    String nome = request.getParameter("nome");
    String website = request.getParameter("website");
    String[] endereco2 = request.getParameterValues("endereco[]");
    String[] contato2 = request.getParameterValues("contato[]");

    Fornecedor f = new Fornecedor();
    f.setRazao_social(nome);
    f.setWebsite(website);
    if(identificador.length() == 14)
        f.setCnpj(identificador);
    else if(identificador.length() == 11)
        f.setCpf(identificador);

    List<Endereco> lista_endereco = new ArrayList<Endereco>();
    if(endereco2 != null) {
        int max = endereco2.length;
        for(int i=0; i<max; i++) {
            int id = Integer.valueOf(endereco2[i]).intValue();
            lista_endereco.add(endereco.findById(id));
        }
        f.setEndereco(lista_endereco);
    }


    List<Contato> lista_contato = new ArrayList<Contato>();
    if(contato2 != null) {
        int max = contato2.length;
        for(int i=0; i<max; i++) {
            int id = Integer.valueOf(contato2[i]).intValue();
            lista_contato.add(contato.findById(id));
        }
        f.setContato(lista_contato);
    }

    return fornecedor.persist(f);
}

我试图找到另一种读取这些参数的方法,而不需要使用getParameter(或getParateValues)方法逐个读取

每个服务类都与我的一个实体类相关,表单中的字段名称与表中的属性名称相同,所有这些属性都是数组,是另一个实体的主键列表

有人知道是否存在任何解决方案,我可以使用上面的信息一次读取所有参数吗

(我正在尝试为我的控制器和服务类创建一个泛型类来对这个公共方法进行分组。我想知道是否存在一种不直接引用每个参数名称的方法。)

我更喜欢一个除了Spring之外没有其他框架可以使用的解决方案


共 (1) 个答案

  1. # 1 楼答案

    我的建议是使用实体来传递参数

    您提到您已经有表单的实体类,那么您应该能够使用

    @ModelAttribute(value=" ")Entity entity
    

    获取所有表单参数,然后将该实体作为参数传递给服务方法